package com.yunxi.order.service;

import com.github.pagehelper.PageInfo;
import com.yunxi.core.web.ApiResult;
import com.yunxi.order.pojo.*;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * <p>
 * 车辆订单 服务类
 * </p>
 *
 * @author 
 * @since 2019-06-18
 */
public interface OrderVehicleDubboService {

    OrderVehicleVO getById(String id) throws InvocationTargetException, IllegalAccessException;

    void saveOrUpdate(OrderVehicleVO orderVehicleVO) throws InvocationTargetException, IllegalAccessException;

    void removeById(String id);

    PageInfo<OrderVehicleVO> findPageByVO(OrderVehicleVO orderVehicleVO, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    PageInfo<OrderVehicleVO> findPageByVO2(OrderVehicleVOReq orderVehicleVOReq, Integer pageNum, Integer pageSize) throws InvocationTargetException, IllegalAccessException;

    void removeByListVo(List<OrderVehicleVO> orderVehicleVOList) throws IllegalAccessException, InvocationTargetException, InstantiationException;

    List listByVo(OrderVehicleVO orderVehicleVO);

    PageInfo listVehicleDeliveryInfo(OrderVehicleDeliveryReqVO reqVO,Integer pageNum, Integer pageSize);

    void confirmVehicleDelivery(OrderVehicleDeliveryConfirmReqVO reqVO);

    PageInfo listVehicleInStock(OrderVehicleInStockReqVO reqVO, Integer pageNum, Integer pageSize);

    void updateVehicleInStockStatus(OrderVehicleInStockReqVO reqVO);

    void band(String orderCustomerNo, String orderCarId);

    void unband(String orderCarId);

    void hireInit(String vin);

    void hireCount(String vin);

    void bandExp(String orderCustomerNo, String vin);

    ApiResult createDataForExpience(String vin);
}
